package com.itheima.chapter08.stream;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;

//终结方法
public class demo4 {
    public static void main(String[] args) {
        List<String > list =new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("孙刘");
        method(list);
        //long count():返回此流中的元素数
        long count = list.stream().count();
        System.out.println(count);
    }

    private static void method(List<String> list) {
        //void forEach (Consumer action):对此流的每个元素执行操作
        //Consumer接口中的方法void accept(T t):对给定的参数执行此操作
        //在forEach方法的底层,会循环获取到流中的每一个数据.
        //并循环调用accept方法,并把每一个数据传递给accept方法
        //s就依次表示了流中的每一个数据.
        //所以,我们只要在accept方法中,写上处理的业务逻辑就可以了.
        list.stream().forEach(
        new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
        System.out.println("----------------------");
        //Lambda
        list.stream().forEach(
                (String s)->{
                    System.out.println(s);
        });
        System.out.println("*************************");
        //Lambda简化
        list.stream().forEach(s-> System.out.println(s));
    }
}
